package Planificador;

import java.util.ArrayList;

public class AlgoritmoPrioridadesConDesalojo extends Algoritmo {
	public AlgoritmoPrioridadesConDesalojo() {
		super("Prioridades Preemtive");
	}

	@Override
	Proceso getSiguiente(ArrayList<Proceso> procesos) {

		if (procesos.isEmpty()) {
			return null;
		}

		Proceso prioridadMasBaja = procesos.get(0);
		for (Proceso p : procesos) {
			if (prioridadMasBaja.getPrioridad() > p.getPrioridad()) {
				prioridadMasBaja = p;
			}
		}

		return prioridadMasBaja;
	}

	@Override
	boolean hayQueDesalojar(Proceso p, ArrayList<Proceso> procesos) {
		Proceso p2 = this.getSiguiente(procesos);

		if ((p != null) && (p2 != null)
				&& (p2.getPrioridad() < p.getPrioridad()))
			return true;

		return false;
	}

	@Override
	boolean hayQueDesalojarPorTimer(Proceso p, ArrayList<Proceso> procesos) {
		return false;
	}
}
